Programacion AVR PWM

Contenido

Como generar señales PWM (Pulse Width Modulation) con un microcontrolador AVR.

El modo PWM nos permite generar señales cuadradas usando el microcontrolador, esto nos puede servir para controlar el comportamiento de ciertos componentes, como controlar el brillo de un led o la velocidad de un motor.

El funcionamiento es muy parecido al modo CTC, solo que cuando se llega al valor de comparación y se cambia el estado de la salida de un pin en vez de reiniciarse el contador en ese momento el contador sigue contando hasta el valor maximo (255), cuando el contador se reinicia el pin vuelve al estado inicial según el modo configurado (desactivado en non-inverted, activado en inverted)

De esta manera el modo PWM cuenta siempre de 0 a 255 y cuando llega al valor de comparación cambia el estado del pin, si por ejemplo ponemos el valor de comparación en 25 esto hará que la señal esté activa un 10% del tiempo (si tenemos un led conectado alumbrará al 10% de su capacidad).

NOTA: en el Timer1 podemos activar el modo 14 (WGM13, WGM12 y WGM11), que es Fast PWM, pero en vez de contar hasta 255 cuenta hasta el valor de ICR1 (el máximo valor de ICR1 es 65535),

En el Atmega168pa tenemos dos pines por cada uno de los timers (6 pines en total) que nos permiten generar señales PWM:

Descripcion

Para utilizar el modo PWM (Fast PWM) necesitamos lo siguiente:

Tags

AVR | microcontrolador | PWM